package com.qwz.learn;
/**  
* @Description: 定义模板的方法、原语操作等抽象类
* @Package com.qwz.learn.AbstractClass
* @author Qiuwuzhi
* @date 2019/12/24 16:14
* @version V1.0
*/
public abstract class AbstractClass {
    /**
     * 操作原语1，所谓原语操作就是抽象类的操作，必须由子类提供实现
     */
    public abstract void doPrimitiveOperation1();

    /**
     * 操作原语2
     */
    public abstract void doPrimitiveOperation2();

    /**
     * 模板方法，定义算法骨架
     */
    public final void templateMethod(){
        doPrimitiveOperation1();
        doPrimitiveOperation2();
    }
}
